package com.canaan.business.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.canaan.common.annotation.Excel;
import com.canaan.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 出库单对象 wms_out_stock_order
 *
 * @author ruoyi
 * @date 2023-02-03
 */
@Data
@ApiModel(description = "wms_out_stock_order")
public class WmsOutStockOrderVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    @ApiModelProperty("id")
    private Long id;

    /** 编号 */
    @Excel(name = "单据编号")
    @ApiModelProperty("单据编号")
    private String no;

    /** 单据类型 1销售单 */
    @ApiModelProperty("单据类型")
    private Integer orderType;

    /** 单据状态 1新建 2进行中 3完成 4取消 */
    @Excel(name = "单据状态", dictType = "invoice_order_status")
    @ApiModelProperty("单据状态 1新建 2进行中 3完成 4取消")
    private Integer orderStatus;

    /** 关联单据 */
    @Excel(name = "来源单据")
    @ApiModelProperty("来源单据")
    private String relOrderNo;

    /** 线边仓 */
    @Excel(name = "线边仓")
    @ApiModelProperty("线边仓")
    private String lineSideWarehouseNo;

    /** 线边仓名称 */
    @Excel(name = "线边仓名称")
    @ApiModelProperty("线边仓名称")
    private String lineSideWarehouseName;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("完成时间")
    private Date completeTime;

    /** 客户编号 */
    @ApiModelProperty("客户编号")
    private String customerNo;

    /** 客户名称 */
    @Excel(name = "客户")
    @ApiModelProperty("客户名称")
    private String customerName;

    /** 地址 */
    @Excel(name = "地址")
    @ApiModelProperty("地址")
    private String site;

    /** 原因 */
    @Excel(name = "原因")
    @ApiModelProperty("原因")
    private String cause;

    /** 订单总数 */
    @Excel(name = "订单总数")
    @ApiModelProperty("订单总数")
    private Long totalOrderQty;

    /** 已拣货总数 */
    @Excel(name = "已拣货总数")
    @ApiModelProperty("已拣货总数")
    private Long totalActualQty;

    /** 是否删除：1是 0否 */
    @ApiModelProperty("是否删除")
    private String delFlag;

    /** 排序 */
    @ApiModelProperty("排序")
    private Integer sort;

    /** 创建人 */
    private String createBy;

    /** 创建人名称 */
    @Excel(name = "创建人")
    private String createByName;

    /** 创建时间 */
    @Excel(name = "创建时间", type = Excel.Type.EXPORT, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新人 */
    private String updateBy;

    /** 更新人 */
    @Excel(name = "最后更新人")
    private String updateByName;

    /** 更新时间 */
    @Excel(name = "最后更新时间", type = Excel.Type.EXPORT, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /** 物料编号 */
    @Excel(name = "物料编号")
    @ApiModelProperty("物料编号")
    private String productNo;

    /** 物料名称 */
    @ApiModelProperty("物料名称")
    private String productName;

    /** 订单数量 */
    @Excel(name = "订单数量")
    @ApiModelProperty("订单数量")
    private Long orderQty;

    /** 拣货数量 */
    @Excel(name = "拣货数量")
    @ApiModelProperty("拣货数量")
    private Long pickingQty;

    /** 物料单位 */
    @ApiModelProperty("物料单位")
    private String unit;

    /** 拣货员 */
    @ApiModelProperty("拣货员")
    private String picker;

    /** 拣货员名称 */
    @Excel(name = "拣货员")
    @ApiModelProperty("拣货员名称")
    private String pickerName;

    /** 拣货单编号 */
    @Excel(name = "拣货单编号")
    @ApiModelProperty("拣货单编号")
    private String pickerTaskOrderNo;

    /** 出库仓编号 */
    @ApiModelProperty("出库仓编号")
    private String storehouseNo;

    /** 出库仓库 */
    @Excel(name = "出库仓库")
    @ApiModelProperty("出库仓库")
    private String storehouseName;

    /** 推荐库位 */
    @Excel(name = "推荐库位")
    @ApiModelProperty("推荐库位")
    private String locations;

    /** 拣货单状态 */
    @ApiModelProperty("拣货单状态")
    private String pickerTaskOrderStatus;


    /** 退货仓库 */
    @ApiModelProperty("退货仓库编号")
    private String returnStorehouseNo;

    /** 退货仓库 */
    @Excel(name = "退货仓库")
    @ApiModelProperty("退货仓库名称")
    private String returnStorehouseName;

    /** 供应商编号 */
    @ApiModelProperty("供应商编号")
    private String supplierNo;

    /** 供应商名称 */
    @Excel(name = "供应商")
    @ApiModelProperty("供应商名称")
    private String supplierName;
}
